#pragma once

#include <cftc/reflect/object.h>
#include <cftf/meta/table.h>
#include "dbc/structure.h"

namespace mt
{

    class PoolTemplate : public cftc::reflect::Object, public cftf::meta::Table<PoolTemplate, unsigned int>
    {
        CFT_DECLARE_REFLECT_CLASS();
    public:
        unsigned int entry = 0;
        unsigned int max_limit = 0;
        std::string description;

        static unsigned int GetMaxPoolId()
        {
            return max_pool_id_;
        }

        void MetaInstanceInit1();

    private:
        inline static unsigned int max_pool_id_ = 0;

    };

}

